package zj.xinxin.api.moudle.security.api;

import com.baomidou.mybatisplus.extension.service.IService;
import zj.xinxin.api.moudle.security.dto.ConsumerInfoDto;
import zj.xinxin.api.moudle.security.entity.ConsumerEntity;
import zj.xinxin.api.moudle.security.vo.LoginVo;
import zj.xinxin.api.moudle.security.vo.UserInfoSearchVo;
import zj.xinxin.api.moudle.security.vo.UserInfoUpdateVo;
import zj.xinxin.api.moudle.security.vo.UserInfoVo;
import zj.xinxin.common.result.PageResult;

import java.util.List;

/**
 * @author junzhou
 * @date 2022/3/23 17:35
 * @since 1.8
 */
public interface ConsumerService extends IService<ConsumerEntity> {

    /**
     * 用户登陆
     * @param loginVo 登陆信息 vo类
     * @return token 值
     */
    String userLogin(LoginVo loginVo);

    /**
     * 添加用户信息
     * @param userInfo 待添加的用户信息
     * @return 是否保存成功
     */
    Boolean addUser(UserInfoVo userInfo);

    /**
     * 根据当前用户的角色 id 查看当前角色下的用户列表
     * @param current 当前页码
     * @param size 页面大小
     * @return 用户和角色信息
     */
    PageResult<ConsumerInfoDto> getListByCurrentRoleId(long current, long size);

    /**
     * 搜索用户信息
     * @param searchVo 搜索条件
     * @return 满足搜索条件的用户信息
     */
    PageResult<ConsumerInfoDto> searchUserInfo(UserInfoSearchVo searchVo);

    /**
     * 更新用户信息
     * @param userInfoVo 用户信息
     * @return 是否更新成功
     */
    Boolean updateUser(UserInfoUpdateVo userInfoVo);

    /**
     * 删除用户信息
     * @param userId 待删除的用户信息
     * @return 是否删除成功
     */
    Boolean deleteUserInfo(Integer userId);


}
